34장. 환각·Alignment·거절(Refusal)
이 장의 목표 “왜 모델이 자신만만하게 거짓말을 하지?” “왜 멀쩡한 질문을 거절하지?”
이 두 가지의 정체와 줄이는 방법을 정리합니다.
34.1 환각(Hallucination) — 왜 일어나나
모델은 “정답을 안다“가 아니라 “가장 그럴듯한 다음 토큰” 을 만듭니다 (2장).
"한국 대법관은 모두 ___ 출신이다"
↓
모델이 모르는 사실
↓
그럴듯한 단어를 그냥 만들어냄
↓
"서울대" — 자신 있게 출력
모르는 것에 대해 “모른다“고 답하도록 학습되지 않은 결과입니다.
34.2 환각이 자주 일어나는 영역
- 고유명사 (사람·회사·논문 이름)
- 숫자·통계 (정확한 수치)
- 인용·출처 (실제 존재 안 함)
- API·라이브러리 메소드명
- 법령·판례
- 최근 사건 (학습 데이터 컷오프 이후)
34.3 환각 줄이는 7가지 방법
① RAG (26장)
근거를 같이 줘서 “그 안에서만 답해” 하면 환각 급감.
② 시스템 프롬프트 강제
- 확실하지 않으면 "모르겠다"라고 답해.
- 추측은 "[추정]"으로 표시.
- 출처가 없으면 답을 만들지 마.
③ Temperature 낮추기
0.2 이하면 환각 빈도 감소 (23장).
④ Reasoning 모델 사용
R1·Thinking 모델은 자기 추론을 검토하는 경향이 강해서 일반 환각이 적습니다 (9장).
⑤ 작은 모델 피하기
3~7B 모델은 큰 모델보다 환각 ↑. 실무용은 14B 이상 권장.
⑥ Tool Use (28장)
“이 사실을 확인하려면 search_web 도구를 써” 라고 시키면 모델이 직접 검색합니다.
⑦ 자기 검토 요청
답을 적은 뒤에,
스스로 검토해서 의심스러운 부분을 표시해줘.
34.4 환각 평가 — 자기 신뢰도 표시
답변 끝에 확신 정도를 표시하게 시키면 사용자가 판단하기 좋습니다.
모든 답변 끝에 한 줄로:
확신도: [매우 높음 / 높음 / 보통 / 낮음 / 매우 낮음]
이유: ...
작은 모델은 이걸 형식대로 안 따르기도 합니다. 큰 모델일수록 자기 인식 능력 ↑.
34.5 Alignment — 모델의 매너 교정
2장에서 본 RLHF·DPO 단계.
모델을 다음과 같이 가르치는 과정:
- 위험한 요청은 거절
- 정중하게 답
- 사실 위주
- 너무 길거나 짧지 않게
Base 모델 → Instruct 모델 이 되는 과정의 핵심.
34.6 거절(Refusal) — 너무 자주 거절하는 모델
Alignment가 과하면 멀쩡한 질문도 거절합니다.
사용자: "독성 화학물질 분류 기준 알려줘"
모델: "위험한 정보 제공은 어렵습니다."
→ 그냥 공개된 화학 교과서 내용인데도 거절.
원인:
- 안전 학습이 과적합
- 키워드 기반 거절 (단어만 보고)
- 시스템 프롬프트가 너무 강함
34.7 거절 줄이기
① 시스템 프롬프트에 컨텍스트
너는 화학 교사와 대화 중이다.
교과서 수준의 일반 화학 지식은 답해도 된다.
② 명확한 경계 정의
다음은 거절:
- 무기·해킹·사기 도구 제작
다음은 답변:
- 일반 학문 지식
- 공개된 사실
- 코드 보안 개선 방법
③ 모델 교체
거절 성향이 너무 강한 모델은 다른 시리즈로. Qwen·Mistral 계열은 보통 비교적 균형.
34.8 Uncensored / Abliterated — 위험한 변종
거절 회로를 제거한 모델들.
Qwen3-32B-Instruct-Uncensored
*-Abliterated
이런 모델은:
- 위험 정보까지 답함
- 사내 챗봇에 절대 사용 금지
- 컴플라이언스 이슈 크다 (12장)
- 개인 학습·실험 용도면 본인 책임
이 책에서는 권장하지 않습니다.
34.9 HarmBench — 안전성 측정
다음 장(35장)의 주제. 모델이 위험한 요청에 얼마나 잘 대응하는지 표준 평가.
34.10 회사 도입 시 안전 정책
사내에서 로컬 AI를 쓸 때 정해두면 좋은 것.
시스템 프롬프트에 회사 정책
당신은 비트북 회사의 사내 비서입니다.
다음은 답변 거부:
- 다른 직원의 개인정보
- 회사 보안 자료의 외부 유출
- 법률·의료의 최종 결정
다음은 답변 가능:
- 사내 매뉴얼 내용
- 일반 업무 지식
- 코드·기술 질의
로그·감사
29장의 Agent 로그와 동일하게 입력·출력 전체 보관.
인간 검토 단계
자동 결정에 큰 영향을 주는 답변은 사람이 한 번 확인.
34.11 한국어 모델의 특수 함정
작은 한국어 모델에서 자주 보이는:
- 공손한 환각: 자신 있게 헛소리
- 영어 사실로 답: 미국 기준 답변
- 존댓말 강제로 답이 늘어짐
- 거절을 한국식 정중함으로 위장
대처:
- 작은 모델은 가능한 한 RAG로 보강
- 큰 32B+ 모델 사용
- 한국어 데이터 비중 큰 시리즈 선택
이 장에서 기억할 한 가지
환각은 모델이 “다음 토큰 예측 기계“라는 본질에서 옵니다.
줄이는 가장 효과적인 길: RAG + 명확한 시스템 프롬프트 + 큰 모델 + 낮은 temperature.
거절은 컨텍스트 부족이 원인인 경우가 많습니다. Uncensored 모델 대신 시스템 프롬프트로 풀어보세요.
손으로 해볼 것
1. 환각 유발 질문 3개
다음을 던져보고 작은 모델 vs 32B 모델 답 비교.
1. "2025년 노벨 화학상 수상자는?"
2. "Qwen3-32B 모델의 정확한 발표일은?"
3. "라이브러리 'fakelib-pro' 의 install_xyz() 사용법은?"
작은 모델이 자신 있게 거짓말 하는지 보세요.
2. “모르면 모른다” 효과 비교
같은 질문을 두 시스템 프롬프트로 던지기.
A. 없음 B. “확실하지 않으면 반드시 ’모르겠다’로 답해. 추측 금지.”
답의 정확성·정직함 차이를 메모.
다음 장에서는 HarmBench와 안전성 평가 — 공식 벤치마크로 모델의 안전성을 재는 법을 봅니다.